//requestAjax.js @author zlx

// url:网络请求的url
// params:请求参数
// message:进度条的提示信息
// success:成功的回调函数
// fail：失败的回调
//其他参数可以自定义传入
const app = getApp()

function requestAjax(url, data, message, success, fail) {
  // console.log(data)
  // wx.showNavigationBarLoading()
  if (message != "") {
    wx.showLoading({
      title: message,
      mask: true
    })
  }
  // console.log('请求', JSON.stringify(data))

  var urlPrefix = app.globalData.urlPrefix

  wx.request({
    //可以写上请求的域名  后期改测试服正式服 改一个地方就可以 前缀写上后期上线改地址好改
    url: urlPrefix + url,
    data: data,
    header: {
      //'Content-Type': 'application/json' 默认
      'content-type': 'application/json',
      'access-token': wx.getStorageSync('token'),
    },
    method: 'post', //方法也可以改成变量 传入
    success: function (res) {
      // console.log(url, '返回', JSON.stringify(res.data))
      //wx.hideNavigationBarLoading()
      if (message != "") {
        wx.hideLoading()
      }
      if (res.data.code == 200) {
        success(res.data)
      } else if (res.data.meta && (res.data.meta.code == 'SC_10000' || res.data.meta.code == 'SC_10001' || res.data.meta.code == 'SC_10002' || res.data.meta.code == 'SC_10003')) {
        wx.setStorageSync('token', '')
        // //如果token过期 拿到后端返回的新token
        // wx.setStorageSync('token', res.data.token)
        // //再重新请求一次 上次的url 即可实现token静默刷新
        // requestAjax(url, data, message, success, fail)
        wx.showToast({
          title: '登录信息已过期，即将自动为您重新登录...',
          icon: 'none',
          duration: 1500,
          mask: true
        })
        setTimeout(function () {
          //去自动登录页面
          wx.navigateTo({
            url: '/pages/login/auto_login'
          })
        }, 1500)

      } else {
        fail(res.data)
      }

    },
    fail: function (res) {
      // console.log(res)
      if (res.errMsg == 'request:fail -7:net::ERR_TIMED_OUT') {
        wx.showModal({
          title: '系统提示',
          content: '网络异常，请稍后再试',
          showCancel: false,
          success(res) {
            if (res.confirm) {} else if (res.cancel) {}
          }
        })
        return
      }

      //wx.hideNavigationBarLoading()
      if (message != '') {
        wx.hideLoading()
      }
      wx.showModal({
        title: '系统提示',
        content: '网络或系统异常，请稍后再试',
        showCancel: false,
        success(res) {
          if (res.confirm) {} else if (res.cancel) {}
        }
      })
      // fail(res.data)
    },
    complete: function (res) {

    },
  })
}
module.exports = {
  requestAjax: requestAjax,
}